const Koa = require('koa')
const app = new Koa();
//引入init.js下暴露的connect函数、initSchemas函数
const {connect,initSchemas} = require('./database/init.js')//将初始化好mongoos的init文件引入,init文件里已经引入初始化的数据库集合文件

const bodyParser = require('koa-bodyparser')//koa中间件，用于koa后端接收前端post请求，把数据传给后端
const cors = require('koa2-cors')//koa中间件，用于前端发送post请求，后端可以通过这中间件接收到。
const Router = require('koa-router')//安装并引入koa路由模块
app.use(bodyParser())//使用中间件
app.use(cors())


let user = require('./appApi/user.js')//引入接口文件
let goods = require('./appApi/goods.js')

//父路由（装载所有子路由）
let router = new Router()
router.use('/user',user.routes())
router.use('/goods',goods.routes())

//使用路由中间件，routes()中间件把父路由router跟子路由home、user连接在一起了
app.use(router.routes())
app.use(router.allowedMethods())//allowedMethods()限制只能get请求。



//立即执行函数，以下代码将初始化好的mongoos文件和数据库集合文件的方法引入，启动连接数据库
;(async () =>{
    //了解await的用法，暂停async里的执行操作，等待connect()函数执行完在来执行async里的操作
    await connect()//先执行连接数据库操作
    initSchemas(); 
})()
app.listen(3000, function () {
    console.log('响应成功:请访问:http://localhost:3000')
});

